A typical graphics processing system includes a frame buffer which holds bit-mapped data generated by the graphics processor which corresponds to the pixels of a frame of an image to be displayed. The pixel data stored in the frame buffer is then available for either processing, such as filtering, by the graphics system processor or for output to the backend circuitry driving the system display device.
Contemporary frame buffers are usually constructed using video random access memory devices (VRAMs) which include an address port, a random access data port for communicating with the graphics processor, and a serial port for communicating with the display driver circuitry. The storage elements of the VRAMs are typically arranged in rows and columns such that the pixel data can be stored in a manner which organizationally corresponds to the lines (rows and columns) of pixels on the display. Further, the VRAMs usually are organized in multiple planes with the same location in each plane accessed with a single address such that multiple bit words can be transferred to and from that location in a single address cycle.
In one graphics system data format, a pixel is defined in terms of red, green, and blue color data and a blending factor alpha. For example, in a 32-bit system a given pixel may be defined by a 32-bit words composed of 8-bits each of red, green, blue, and for example alpha data. In the frame buffer, the 32-bit word of pixel data or simply "pixel" may be stored across thirty-two planes of one or more parallel VRAMs for access with a single address through the random port.
During data processing it may not always be desirable to access a whole pixel for a given operation. For instance, it may be advantageous to perform filtering on only one particular portion of the data defining an image in the frame buffer, such as the red data. At the same time, for other operations it still may be desirable to access "whole" pixels or red, green, blue and alpha color data. This requirement that during some operations whole pixels be accessible and during other operations only portions of pixels be accessible can severely burden system operation, for example, by requiring unnecessary addressing/access operations.
Thus, the need has arisen for devices, systems and methods which allow for efficient access of either whole data words or portions of data words stored in a memory as required by a given data processing operation.